<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Listado de usuarios</title>
        <link href="recursos/general.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript">
            function crearMensaje(xhr, status, args){
                if(args.consultar){
                    dialogoUsuario.hide();
                }else if(args.faltanDatos){
                    faltanDatos.show();
                }else if(args.faltaEmail){
                    emailNecesario.show();
                }else if(args.usuarioEditado){
                    msgModif.show();
                    dialogoUsuario.hide();
                }else if(args.usuarioNoEditado){
                    msgNoModif.show();
                    dialogoUsuario.hide();
                }else if(args.borrado){
                    msgBorrado.show();
                    borrar.hide();
                }else if(args.noBorrado){
                    msgNoBorrado.show();
                    borrar.hide();
                }else if(args.desactivado){
                    msgDesactivado.show();
                    borrar.hide();
                }else if(args.noDesactivado){
                    msgNoDesactivado.show();
                    borrar.hide();
                }else if(args.nuevaContraseña){
                    nuevaContraseña.show();
                    dialogoContraseña.hide();
                }else if(args.antiguaContraseña){
                    antiguaContraseña.show();
                    dialogoContraseña.hide();
                }
            }
        </script>
    </h:head>
    <h:body>
        <h:form id="form">
            <!--Nos mostrará el título de la página -->
            <h:outputText value="#{listado_Usuario.titulo}" styleClass="textoTitulo"/>
            
            <!--Panel que muestra todo los voluntario existentes -->
            <p:dataTable id="panel" value="#{listado_Usuario.usuarios}" var="usuario" paginator="true"  rows="30" 
                         paginatorPosition="bottom" emptyMessage="No hay usuarios activos" style="margin-top: 10px;" >
                <p:column filterBy="#{usuario.idusuario}" filterMatchMode="contains" style="width: 15%;">
                    <f:facet name="header">
                        <h:outputText value="IdUsuario"/>
                    </f:facet>
                    <h:outputText value="#{usuario.idusuario}"/> 
                </p:column>
                <p:column filterBy="#{usuario.nombre}" filterMatchMode="contains" style="width: 15%;">
                    <f:facet name="header">
                        <h:outputText value="Nombre"/>
                    </f:facet>
                    <h:outputText value="#{usuario.nombre}"/> 
                </p:column>
                <p:column style="width: 25%;">
                    <f:facet name="header">
                        <h:outputText value="Apellidos"/>
                    </f:facet>
                    <h:outputText value="#{usuario.apellidos}"/> 
                </p:column>
                <p:column style="width: 25%;">
                    <f:facet name="header">
                        <h:outputText value="Email"/>
                    </f:facet>
                    <h:outputText value="#{usuario.email}"/>
                </p:column>
                <p:column style="width: 15%;">
                    <f:facet name="header">
                        <h:outputText value="Opciones"/>
                    </f:facet>
                    <p:commandButton image="ui-icon ui-icon-search" onclick="dialogoUsuario.show()" action="#{listado_Usuario.consultar}" 
                                     update="form:display,dialogo" title="Consultar">
                        <f:setPropertyActionListener value="#{usuario}" target="#{listado_Usuario.usuario}"/>
                    </p:commandButton>
                    <p:commandButton image="ui-icon ui-icon-pencil" oncomplete="dialogoUsuario.show()" action="#{listado_Usuario.editar}" 
                                     update="form:display,dialogo" title="Editar">
                        <f:setPropertyActionListener value="#{usuario}" target="#{listado_Usuario.usuario}"/>
                    </p:commandButton>
                    <p:commandButton oncomplete="borrar.show()"  
                                     image="ui-icon ui-icon-closethick" title="Borrar">
                        <f:setPropertyActionListener value="#{usuario}" target="#{listado_Usuario.usuario}"/>
                    </p:commandButton>
                </p:column>                
            </p:dataTable>

            <p:commandButton value="Exportar" styleClass="botonGrande" style="margin-top: 10px;" onclick="exportarDialog.show();"/>
            <p:dialog widgetVar="exportarDialog" header="Exportar datos" styleClass="dialogoNormal" modal="true" resizable="false" width="180">
                <!--Panel que permite exportar el contenido de la tabla a pdf o xls -->
                <h:panelGrid columns="2">
                    <h:commandLink  onclick="exportarDialog.hide();">
                        <p:graphicImage value="/imagenes/pdf.jpg" height="80px" width="60px"/>  
                        <p:dataExporter type="pdf" target="panel" fileName="Listado_Usuarios" excludeColumns="4"/>
                    </h:commandLink>
                    <h:commandLink>
                        <p:graphicImage value="/imagenes/xls.jpg" height="90px" width="90px"/>
                        <p:dataExporter type="xls" target="panel" fileName="Listado_Usuarios" excludeColumns="4"/>
                    </h:commandLink>
                </h:panelGrid>
            </p:dialog>

            <!--Dialogo que muestra los datos del usuario seleccionado -->
            <p:dialog id="dialogo" width="400" widgetVar="dialogoUsuario" header="Datos del usuario" resizable="false"  
                      modal="true" closable="false" styleClass="dialogoNormal">
                <p:panel id="display">
                    <table>
                        <tr>
                            <td>
                                <h:outputText value="Nombre *:" styleClass="texto"/>  
                            </td>
                            <td>
                                <p:inputText id="Nombre" value="#{listado_Usuario.usuario.nombre}" readonly="#{!listado_Usuario.editar}" styleClass="textoI"/> 
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <h:outputText value="Apellidos *:" styleClass="texto"/>   
                            </td>
                            <td>
                                <p:inputText id="Apellidos" value="#{listado_Usuario.usuario.apellidos}" readonly="#{!listado_Usuario.editar}" styleClass="textoI"/>  
                            </td>
                        </tr>
                        <tr>
                            <td>
                               <h:outputText value="Email :" styleClass="texto"/> 
                            </td>
                            <td>
                               <p:inputText  value="#{listado_Usuario.usuario.email}" readonly="#{!listado_Usuario.editar}" styleClass="textoI"/> 
                            </td>
                        </tr>
                        <tr>
                            <td>
                               <h:outputText value="¿Deseas recibir avisos? *:" styleClass="texto" /> 
                            </td>
                            <td>
                              <h:selectBooleanCheckbox  value="#{listado_Usuario.usuario.avisos}" disabled="#{!listado_Usuario.editar}" />  
                            </td>
                        </tr>
                        <tr>                            
                            <td colspan="2">
                                <p:commandButton value="Cambiar contraseña" onclick="dialogoContraseña.show()" update="form:display2" 
                                                 rendered="#{listado_Usuario.editar}" styleClass="botonNormal"/> 
                            </td>
                        </tr>
                    </table>
                </p:panel>
                <p:commandButton value="Aceptar" action="#{listado_Usuario.aceptar}" oncomplete="crearMensaje(xhr, status, args)" 
                                 styleClass="botonGrande" style="margin-top: 5px;"/>

            </p:dialog>        

            <!--Dialogo de confirmación que indica que el usuario se ha modificado correctamente-->
            <p:confirmDialog message="El usuario ha sido modificado correctamente" severity="info" widgetVar="msgModif" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Dialogo de confirmación que indica que el usuario no se ha modificado -->
            <p:confirmDialog message="El usuario no ha sido modificado" severity="info" widgetVar="msgNoModif" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Dialogo que indica que faltan datos obligatorios-->
            <p:confirmDialog message="Faltan datos. Compruebe el nombre y apellidos" severity="info" widgetVar="faltanDatos" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Dialogo que indica que falta el emails-->
            <p:confirmDialog message="Necesario un email para recibir avisos" severity="info" widgetVar="emailNecesario" modal="true"
                             styleClass="dialogoGrande"/>

            <!--Dialogo para cambiar la contraseña-->
            <p:dialog id="dialogoC" width="400" widgetVar="dialogoContraseña" header="Cambio contraseña" resizable="false"  
                      modal="true" styleClass="dialogoNormal">
                <h:panelGrid id="display2" columns="2" cellpadding="4">
                    <h:outputText value="Password antiguo:" styleClass="texto"/>  
                    <p:password  value="#{listado_Usuario.passAnt}" feedback="false" minLength="2" styleClass="textoI"/>  

                    <h:outputText value="Password nuevo" styleClass="texto"/>  
                    <p:password  value="#{listado_Usuario.passNueva1}" feedback="false" minLength="2" styleClass="textoI"/>  

                    <h:outputText value="Confirmar Password nuevo" styleClass="texto"/>  
                    <p:password  value="#{listado_Usuario.passNueva2}" feedback="false" minLength="2" styleClass="textoI"/> 
                </h:panelGrid>
                <p:commandButton value="Cambiar" action="#{listado_Usuario.cambiarContrasenna}" oncomplete="crearMensaje(xhr, status, args)"
                                 styleClass="botonGrande"/>
            </p:dialog>

            <!--Dialogo de confirmación indica que se ha cambiado la contraseña -->
            <p:confirmDialog message="La contraseña se ha cambiado." severity="info" widgetVar="nuevaContraseña" modal="true" styleClass="dialogoGrande"/>

            <!--Dialogo de confirmación que indica que no se ha cambiado la contraseña -->
            <p:confirmDialog message="La contraseña no se ha cambiado." severity="info" widgetVar="antiguaContraseña" modal="true" styleClass="dialogoGrande"/>

            <!--Dialogo de confirmación que nos preguntara varias opciones -->
            <p:confirmDialog message="Seleccione la opción deseada:" severity="alert"
                             header="Iniciar borrado" widgetVar="borrar" width="400" modal="true" styleClass="dialogoNormal">
                <p:commandButton value="Borrar" action="#{listado_Usuario.borrar}" update="panel" oncomplete="crearMensaje(xhr, status, args)" 
                                 styleClass="botonGrande"/>
                <p:commandButton value="Desactivar" action="#{listado_Usuario.desactivar}" update="panel" oncomplete="crearMensaje(xhr, status, args)"
                                 styleClass="botonGrande"/>                
            </p:confirmDialog>

            <!--Dialogo de confirmación que indica que el usuario ha sido borrado correctamente -->
            <p:confirmDialog message="El usuario ha sido borrado correctamente." severity="info" widgetVar="msgBorrado" modal="true" styleClass="dialogoGrande"/>

            <!--Dialogo de confirmación que indica que el usuario no ha sido borrado -->
            <p:confirmDialog message="El usuario no ha sido borrado" severity="info" widgetVar="msgNoBorrado" modal="true" styleClass="dialogoGrande"/>

            <!--Dialogo de confirmación que indica que el usuario ha sido desactivado correctamente -->
            <p:confirmDialog message="El usuario ha sido desactivado correctamente" severity="info" widgetVar="msgDesactivado" modal="true" styleClass="dialogoGrande"/>

            <!--Dialogo de confirmación que indica que el usuario no ha sido desactivado -->
            <p:confirmDialog message="El usuario no ha sido desactivado" severity="info" widgetVar="msgNoDesactivado" modal="true" styleClass="dialogoGrande"/>           
        </h:form>
    </h:body>
</html>

